/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Facade;

import entity.Account;
import entity.BankTransaction;
import entity.CurrencyEE;
import entity.Customer;
import exceptions.LoginAlreadyExistsException;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import javax.ejb.EJBException;
import javax.ejb.Local;
import javax.persistence.NoResultException;

/**
 *
 * @author Vojtisek
 */
@Local
public interface ManagerLocal {

    public Collection<Account> getCustomerAccounts(Integer customerId) throws Exception;

    void createCustomer(Customer customer) throws LoginAlreadyExistsException, EJBException, Exception;

    void editCustomer(Integer id, String login, String firstName, String lastName, BigDecimal limit, CurrencyEE currency) throws LoginAlreadyExistsException, Exception;

    Customer findCustomer(String login) throws EJBException, NoResultException, Exception;

    Account getAccount(Object id) throws Exception;

    List<BankTransaction> getAccountTransactions(Integer accountId) throws Exception;

    List<Account> getAllAccounts() throws Exception;

    Collection<Customer> getAllCustomers() throws Exception;

    List<BankTransaction> getAllTransactions() throws Exception;

    Customer getCustomer(Integer id) throws Exception;
}
